/*
 *------------------------------------------------------------------------------
 * @File      :    ei_mai_nna.h
 * @Date      :    2021-4-8
 * @Author    :    lomboswer <lomboswer@lombotech.com>
 * @Brief     :    Media Interface for MADP(Media Development Platform).
 *
 * Copyright (C) 2020-2021, LomboTech Co.Ltd. All rights reserved.
 *------------------------------------------------------------------------------
 */

#ifndef __EI_NNA_FACE_ATTR_DEFINE_H__
#define __EI_NNA_FACE_ATTR_DEFINE_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include "ei_nna_fd_define.h"

#define DEFAULT_NNA_FACE_ATTR_CONFIG_MAX_DET_CNT (30)

typedef struct eiNNA_FACE_ATTR_CONFIG_S {
	EI_CHAR *ModelRootPath;

	EI_S32 s32Width;
	EI_S32 s32Height;

	EI_S32 s32EnableAgeDet;
	EI_S32 s32EnableGenderDet;
	EI_S32 s32EnableGlassesDet; //has move to nna_fod
	EI_S32 s32EnableMaskDet; 	//has move to nna_fod
	EI_S32 s32EnableBeardDet;	//has remove
	EI_S32 s32EnableHatDet;		//has remove
	EI_S32 s32EnableHelmetDet;	//has remove

	EI_NNA_AX_FREQ_S stFreq;
} EI_NNA_FACE_ATTR_CONFIG_S;

typedef enum eiNNA_FACE_ATTR_GENDER {
	NNA_FACEATTR_GENDER_INIT,
	NNA_FACEATTR_GENDER_FEMALE,
	NNA_FACEATTR_GENDER_MALE,
} EI_NNA_FACE_ATTR_GENDER_E;

typedef enum eiNNA_FACE_ATTR_GLASSES {
	NNA_FACEATTR_GLASSES_INIT,
	NNA_FACEATTR_WITH_GLASSES,
	NNA_FACEATTR_NO_GLASSES,
} EI_NNA_FACE_ATTR_GLASSES_E;

typedef enum eiNNA_FACE_ATTR_MASK {
	NNA_FACEATTR_MASK_INIT,
	NNA_FACEATTR_WITH_MASK,
	NNA_FACEATTR_NO_MASK,
} EI_NNA_FACE_ATTR_MASK_E;

typedef enum eiNNA_FACE_ATTR_BEARD {
	NNA_FACEATTR_BEARD_INIT,
	NNA_FACEATTR_WITH_BEARD,
	NNA_FACEATTR_NO_BEARD,
} EI_NNA_FACE_ATTR_BEARD_E;

typedef enum eiNNA_FACE_ATTR_HAT {
	NNA_FACEATTR_HAT_INIT,
	NNA_FACEATTR_WITH_HAT,
	NNA_FACEATTR_NO_HAT,
} EI_NNA_FACE_ATTR_HAT_E;

typedef enum eiNNA_FACE_ATTR_HELMET {
	NNA_FACEATTR_HELMET_INIT,
	NNA_FACEATTR_WITH_HELMET,
	NNA_FACEATTR_NO_HELMET,
} EI_NNA_FACE_ATTR_HELMET_E;

typedef struct eiNNA_FACE_ATTR_S {
	EI_S32 s32Age;
	EI_NNA_FACE_ATTR_GENDER_E eGender;
	EI_NNA_FACE_ATTR_GLASSES_E eGlasses; //has move to nna_fod
	EI_NNA_FACE_ATTR_MASK_E eMask;		//has move to nna_fod
	EI_NNA_FACE_ATTR_BEARD_E eBeard;	//has remove
	EI_NNA_FACE_ATTR_HAT_E eHat;		//has remove
	EI_NNA_FACE_ATTR_HELMET_E eHelmet;	//has remove
} EI_NNA_FACE_ATTR_S;

typedef struct eiNNA_FACES_ATTR_S {
	EI_S32 s32Num;
	EI_NNA_FACE_ATTR_S stFacesAttr[DEFAULT_NNA_FACE_ATTR_CONFIG_MAX_DET_CNT];
} EI_NNA_FACES_ATTR_S;

typedef EI_S32 NNA_FA_CHN;
typedef EI_NNA_FACE_ATTR_CONFIG_S EI_NNA_FA_CONFIG_S;
typedef EI_NNA_FACES_ATTR_S EI_NNA_DST_FA_S;
typedef EI_NNA_FACES_S EI_NNA_SRC_FA_S;


#ifdef __cplusplus
}
#endif

#endif
